home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 16
/
Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso
/
Aminet
/
misc
/
emu
/
QDOS2.lha
/
QLsource
/
ROMsrc
/
SYS
/
BASIC4_asm
< prev
next >
Wrap
Text File
|
1995-08-27
|
3KB
|
161 lines
*/beginfile BASIC4_asm
; --------------------------------------------------------------
; BASIC4_asm - BASIC bits
; - last modified 27/08/95
; QDOS-Amiga sources by Rainer Kowallik
; ...some changes by Mark J Swift
; --------------------------------------------------------------
L072C2:
BP_LET:
MOVEM.L D4/A0/A3-A5,-(A7)
MOVE.B 1(A6,A3.L),D0
ANDI.B #$0F,D0
SUBQ.B #2,D0
BGT.S L072EE
BEQ.S L072F8
CMPI.B #$03,0(A6,A3.L)
BEQ.S L072E4
ADDQ.B #2,D0
BGT.S L07350
BRA L07396
L072E4 ADDQ.B #2,D0
BGT L073B4
BRA L073BE
L072EE MOVEQ #$02,D1
BSR.S L07308
ADD.L D1,BV_RIP(A6) ;arith stack
BRA.S L07330
L072F8 MOVEQ #$06,D1
BSR.S L07308
MOVE.L 2(A6,A1.L),$02(A6,A0.L)
ADD.L D1,BV_RIP(A6) ;arith stack
BRA.S L07330
L07308 MOVE.L 4(A6,A3.L),D4
BGE.S L07310
BSR.S L07338
L07310 MOVEA.L BV_VVBAS(A6),A0 ;variable values
ADDA.L D4,A0
MOVEA.L BV_RIP(A6),A1 ;arith stack
MOVE.W 0(A6,A1.L),0(A6,A0.L)
L07320 MOVEQ #1,D0
SUB.B 0(A6,A3.L),D0
BLT.S L07334
MOVE.B #2,0(A6,A3.L)
BRA.S L07334
L07330 MOVEM.L (A7)+,D4/A0/A3-A5
L07334 MOVEQ #0,D0
RTS
L07338 MOVEM.L A2-A3,-(A7)
JSR L04DF6(PC) ;*/undomodify BSR L04DF6
MOVEM.L (A7)+,A2-A3
MOVE.L A0,D4
SUB.L BV_VVBAS(A6),D4 ;variable values
MOVE.L D4,4(A6,A3.L)
RTS
L07350 BSR.S L073C6
ANDI.L #$0000FFFF,D1
MOVE.L $04(A6,A3.L),D4
BLT.S L07382
MOVEA.L BV_VVBAS(A6),A0 ;variable values
ADDA.L D4,A0
MOVEQ #$01,D2
ADD.W 0(A6,A0.L),D2
BCLR #0,D2
CMP.W D1,D2
BEQ.S L07388
ADDQ.L #2,D2
MOVEM.L D1/A1/A3,-(A7)
MOVE.L D2,D1
JSR L04FE8(PC) ;*/undomodify BSR L04FE8
MOVEM.L (A7)+,D1/A1/A3
L07382 ADDQ.L #2,D1
BSR.S L07338
SUBQ.L #2,D1
L07388 BSR.S L073DE
BSR.S L073EC
MOVEQ #0,D0
MOVEQ #0,D2
BSR.S L07400
BSR.S L07320
L07394 BRA.S L07330
L07396 MOVE.B #1,1(A6,A3.L)
BSR.S L073C6
SUBQ.W #1,D5
ADDQ.W #2,A2
ADDA.W D5,A2
MOVEA.L A2,A0
SUB.W D5,D6
MOVE.W D6,D2
BSR L0743C
ADDQ.W #2,A1
L073B0 BSR.S L07400
BRA.S L07394
L073B4 BSR.S L073C6
BSR.S L0742C
BSR.S L073DE
BSR.S L073EC
BRA.S L073B0
L073BE BSR.S L073C6
BSR.S L0742C
BSR.S L073DE
BRA.S L073B0
L073C6 MOVEA.L BV_RIP(A6),A1 ;arith stack
MOVEQ #0,D1
MOVE.W 0(A6,A1.L),D1
MOVE.W D1,D0
SWAP D1
MOVE.W D0,D1
ADDQ.W #1,D1
BCLR #0,D1
RTS
L073DE MOVEA.L BV_VVBAS(A6),A0 ;variable values
ADDA.L D4,A0
MOVEA.L BV_RIP(A6),A1 ;arith stack
ADDQ.W #2,A1
RTS
L073EC MOVE.W -$02(A6,A1.L),0(A6,A0.L)
CMP.W 0(A6,A0.L),D1
BCC.S L073FC
MOVE.W D1,0(A6,A0.L)
L073FC ADDQ.W #2,A0
RTS
L07400 TST.W D1
L07402 BEQ.S L07412
MOVE.B 0(A6,A1.L),0(A6,A0.L)
ADDQ.W #1,A0
ADDQ.W #1,A1
SUBQ.W #1,D1
BRA.S L07402
L07412 TST.W D2
L07414 BEQ.S L07422
MOVE.B #$20,0(A6,A0.L)
ADDQ.W #1,A0
SUBQ.W #1,D2
BRA.S L07414
L07422 ADDA.W D0,A1
MOVE.L A1,BV_RIP(A6) ;arith stack
MOVEQ #0,D0
RTS
L0742C MOVEA.L 4(A6,A3.L),A0
ADDA.L BV_VVBAS(A6),A0 ;variable values
MOVE.W 6(A6,A0.L),D2
MOVE.L 0(A6,A0.L),D4
L0743C MOVE.W D1,D0
SWAP D1
CMP.W D2,D1
BHI.S L0744A
SUB.W D1,D2
SUB.W D1,D0
RTS
L0744A MOVE.W D2,D1
SUB.W D2,D0
MOVEQ #0,D2
RTS
L07452 MOVE.B 1(A6,A3.L),D5
LSR.B #4,D5
ANDI.B #$0F,1(A6,A3.L)
ADDQ.W #8,A3
RTS
; --------------------------------------------------------------
;*/endfile